package com.cebbank.sz.cebtemplate.config;

import com.cebbank.sz.cebtemplate.constant.ResponseEnum;
import lombok.Data;

@Data
public class ResponseWrapper {

    private static final String PREFIX = "message.";

    /**
     * 状态码
     */
    private Integer code;

    /**
     * 消息
     */
    private String message;

    /**
     * 数据
     */
    private Object data;

    public ResponseWrapper() {}

    /**
     * 成功时返回数据
     * @param data 返回数据
     */
    public ResponseWrapper(Object data) {
        this.code = ResponseEnum.SUCCESS.getCode();
        this.message = ResponseEnum.SUCCESS.getMessage();
        this.data = data;
    }

    /**
     * 失败时的返回消息、返回数据
     * @param message 返回消息
     * @param data 返回数据
     */
    public ResponseWrapper(String message, Object data) {
        this.code = ResponseEnum.FAILED.getCode();
        this.message = PropertiesListenerConfig.getProperty(PREFIX + message);
        this.data = data;
    }

    /**
     * 无返回数据时自定义返回码、返回消息
     * @param code 返回码
     * @param message 返回消息
     */
    public ResponseWrapper(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * 返回数据时自定义返回码、返回消息
     * @param code 返回码
     * @param message 返回消息
     * @param data 返回数据
     */
    public ResponseWrapper(Integer code, String message, Object data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

}
